
//import java.awt.Color;
//import java.awt.Font;
//import java.awt.FontMetrics;
//import java.awt.Graphics2D;
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.io.IOException;
//import javax.imageio.ImageIO;

//public class MingSeal {
//
//    public static void main(String[] args) {
//        int width = 200;
//        int height = 200;
//        String text = "印章文字";
//        String outputImagePath = "C:\\Users\\tlcb\\Pictures\\Camera Roll\\mingimage.png";
//        // 创建一个空白的BufferedImage对象
//        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
//
//        // 获取Graphics2D对象
//        Graphics2D g2d = bufferedImage.createGraphics();
//
//        // 设置背景为透明
//        g2d.setColor(new Color(255, 255, 255, 0));
//        g2d.fillRect(0, 0, width, height);
//
//        // 画红色的方框
//        g2d.setColor(Color.RED);
//        g2d.drawRect(10, 10, width - 20, height - 20);
//
//        // 设置字体
//        Font font = new Font("Serif", Font.BOLD, 40);
//        g2d.setFont(font);
//        FontMetrics fontMetrics = g2d.getFontMetrics();
//
//        // 计算文字的宽度和高度
//        int stringWidth = fontMetrics.stringWidth(text);
//        int stringHeight = fontMetrics.getAscent();
//
//        // 在方框中心绘制文字
//        int x = (width - stringWidth) / 2;
//        int y = (height + stringHeight) / 2 - 10; // 10是为了调整文字位置使其居中
//
//        g2d.drawString(text, x, y);
//
//        // 释放Graphics2D对象
//        g2d.dispose();
//
//        // 保存图片到文件
//        try {
//            ImageIO.write(bufferedImage, "png", new File(outputImagePath));
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//}

import java.awt.Color;
        import java.awt.Font;
        import java.awt.FontMetrics;
        import java.awt.Graphics2D;
        import java.awt.image.BufferedImage;
        import java.io.File;
        import java.io.IOException;
        import javax.imageio.ImageIO;

public class MingSeal {

    public static void main(String[] args) {
        String text = "印章文字";
        int padding = 20;
        int borderThickness = 5;
        String outputImagePath = "C:\\Users\\tlcb\\Pictures\\Camera Roll\\mingimage.png";
        // 创建一个临时的BufferedImage对象来计算文字的尺寸
        BufferedImage tempImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = tempImage.createGraphics();

        // 设置字体
        Font font = new Font("Serif", Font.BOLD, 40);
        g2d.setFont(font);
        FontMetrics fontMetrics = g2d.getFontMetrics();

        // 计算文字的宽度和高度
        int stringWidth = fontMetrics.stringWidth(text);
        int stringHeight = fontMetrics.getAscent();

        // 计算图片的宽度和高度
        int width = stringWidth + padding * 2;
        int height = stringHeight + padding * 2;

        // 创建最终的BufferedImage对象
        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
        g2d = bufferedImage.createGraphics();

        // 设置背景为透明
        g2d.setColor(new Color(255, 255, 255, 0));
        g2d.fillRect(0, 0, width, height);

        // 画红色的方框
        g2d.setColor(Color.RED);
        g2d.fillRect(0, 0, width, height); // 先填充一个红色的矩形
        g2d.setColor(new Color(255, 255, 255, 0));
        g2d.fillRect(borderThickness, borderThickness, width - 2 * borderThickness, height - 2 * borderThickness); // 再填充一个透明的内部矩形

        // 设置字体
        g2d.setFont(font);

        // 在方框中心绘制文字
        g2d.setColor(Color.RED);
        int x = padding;
        int y = padding + fontMetrics.getAscent();
        g2d.drawString(text, x, y);

        // 释放Graphics2D对象
        g2d.dispose();

        // 保存图片到文件
        try {
            ImageIO.write(bufferedImage, "png", new File(outputImagePath));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

